﻿#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef int ListData;
typedef struct ListNode
{
	ListData data;
	struct ListNode* next;
	struct ListNode* prev;
}LTNode;

LTNode* LTBuyNode(ListData x);

//返回头节点的初始化
LTNode* LTinit();
//传入头节点的初始化
void LTInit(LTNode** pphead);

//尾插
void LTPushback(LTNode* phead, ListData x);

//打印
void LTPrint(LTNode* phead);

//头插
void LTPushfront(LTNode* phead, ListData x);

//尾删
void LTPopback(LTNode* phead);

//头删
void LTPopfront(LTNode* phead);

//在pos位置之后插⼊数据
void LTInsert(LTNode* pos,ListData x);

//删除pos数据
void LTErase(LTNode* pos);

//找数据的位置
LTNode* LTFind(LTNode* phead, ListData x);

//销毁链表
LTNode* LTdestory(LTNode** pphead);